home *** CD-ROM | disk | FTP | other *** search
- .text
- .sdreg r2
- .align 2
- .global _RealEStr
- _RealEStr:
- ###############################################################################
- # name offset
- # __local 0
- # buf 8
- # neg 32
- # rest 36
- # top 40
- # d 44
- # args ###########################
- # str 52
- # f 56
- # n 64
- mflr r0
- stw r0,8(r1)
- stwu r1,-96(r1)
- stw r13,24(r1)
- mr r13,r1
- stw r3,52+28(r13)
- stfd f1,56+28(r13)
- stw r4,64+28(r13)
- lis r0,24
- stw r0,4+28(r13)
- stb r0,8+28(r13)
- lwz r0,RealEStr_laddr(r2)
- stw r0,0+28(r13)
- # DEFL top,rest,neg=FALSE
- li r3,0
- stw r3,32+28(r13)
- # IF f<0 THEN neg:=TRUE
- if0:
- lfd f1,56+28(r13)
- lfd f2,n0(r2)
- fcmpo 0,f1,f2
- blt $+12
- li r3,0
- b $+8
- li r3,-1
- mr. r3,r3
- beq end0
- # IF f<0 THEN neg:=TRUE
- li r3,-1
- stw r3,32+28(r13)
- end0:
- # d:=FAbs(f)
- lfd f1,56+28(r13)
- fabs f1,f1 # FAbs
- stfd f1,44+28(r13)
- # top:=d
- lfd f0,44+28(r13)
- fctiw f0,f0
- stfd f0,-8(r1)
- lwz r3,-4(r1)
- stw r3,40+28(r13)
- # d-=top
- lfd f1,44+28(r13)
- lwz r3,40+28(r13)
- lis r0,17200
- stw r0,-8(r1)
- xoris r0,r3,0x8000
- stw r0,-4(r1)
- lfd f0,-8(r1)
- lfd f2,conv(r2)
- fsub f2,f0,f2
- fsub f1,f1,f2
- stfd f1,44+28(r13)
- # top--
- if2:
- lfd f1,44+28(r13)
- lfd f2,n1(r2)
- fcmpo 0,f1,f2
- blt $+12
- li r3,0
- b $+8
- li r3,-1
- mr. r3,r3
- beq end2
- # top--
- lwz r3,40+28(r13)
- subi r3,r3,1
- stw r3,40+28(r13)
- # d++
- lfd f1,44+28(r13)
- lfd f2,n2(r2)
- fadd f1,f1,f2
- stfd f1,44+28(r13)
- end2:
- # d*=1000000000
- lfd f1,44+28(r13)
- lfd f2,n3(r2)
- fmul f1,f1,f2
- stfd f1,44+28(r13)
- # rest:=d
- lfd f0,44+28(r13)
- fctiw f0,f0
- stfd f0,-8(r1)
- lwz r3,-4(r1)
- stw r3,36+28(r13)
- # IF f<0 THEN top:=-top
- if4:
- lfd f1,56+28(r13)
- lfd f2,n4(r2)
- fcmpo 0,f1,f2
- blt $+12
- li r3,0
- b $+8
- li r3,-1
- mr. r3,r3
- beq end4
- # IF f<0 THEN top:=-top
- lwz r3,40+28(r13)
- neg r3,r3
- stw r3,40+28(r13)
- end4:
- # EStringF(buf,'\s\d.\z\r\d[9]',IF neg THEN '-' ELSE NIL,Abs(top),rest)
- subi r1,r1,12
- addi r3,r13,8+28
- stw r3,0+24(r1)
- lwz r3,@_str0(r2)
- stw r3,4+24(r1)
- subi r1,r1,12
- if6:
- lwz r0,32+28(r13)
- mr. r0,r0
- beq elseif6_1
- lwz r3,@_str1(r2)
- stw r3,0+24(r1)
- b end6
- elseif6_1:
- li r3,0
- stw r3,0+24(r1)
- end6:
- lwz r3,40+28(r13)
- bl _Abs # Abs
- stw r3,4+24(r1)
- lwz r3,36+28(r13)
- stw r3,8+24(r1)
- lwz r3,0+28(r13)
- addi r3,r3,0
- lwz r4,0+24(r1)
- stw r4,0(r3)
- lwz r4,4+24(r1)
- stw r4,4(r3)
- lwz r4,8+24(r1)
- stw r4,8(r3)
- addi r1,r1,12
- stw r3,8+24(r1)
- lwz r3,24(r1)
- addi r1,r1,4
- lwz r4,24(r1)
- addi r1,r1,4
- lwz r5,24(r1)
- addi r1,r1,4
- bl _EStringF # EStringF
- # EStrCopy(str,buf,EStrLen(buf)-9+n)
- lwz r3,52+28(r13)
- addi r4,r13,8+28
- stw r4,20(r1)
- stw r3,16(r1)
- subi r1,r1,8
- addi r3,r13,8+28
- lhz r3,-2(r3) # EStrLen
- mr r5,r3
- lwz r3,24(r1)
- lwz r4,28(r1)
- addi r1,r1,8
- subi r5,r5,9
- lwz r6,64+28(r13)
- add r5,r5,r6
- bl _EStrCopy # EStrCopy
- RealEStrend:
- lwz r3,52+28(r13)
- RealEStrfinish:
- lwz r13,24(r1)
- addi r1,r1,96
- lwz r0,8(r1)
- mtlr r0
- blr
-
- .global _RealEStr
- .type _RealEStr,2
- .size _RealEStr,$-_RealEStr
- RealEStr_local:
- RealEStr_list0:
- .ualong 0
- .ualong 0
- .ualong 0
- .align 2
- .global _EStrCopy
- .global _EStringF
- .global _EStrLen
- .global _Abs
- .global _FAbs
- .tocd
- .global RealEStr_laddr
- RealEStr_laddr: .long RealEStr_local
- .extern _stdrast_coloura
- .extern _stdrast
- .extern _exceptioninfo
- .extern _exception
- .extern _wbmessage
- .extern _PowerPCBase
- .extern _stdin
- .extern _stdout
- .extern _arg
- .extern _GfxBase
- .extern _IntuitionBase
- .extern _DOSBase
- .extern _ExecBase
- .data
- n0: .long 0x0 ,0x0
- .set n1,n0
- n2: .long 0x3FF00000,0x0
- n3: .long 0x41CDCD65,0x0
- .set n4,n1
- conv: .long 0x43300000,0x80000000
- .extern @_str0
- .global str0
- str0: .byte "%s%ld.%09.9ld",0
- .extern @_str1
- .global str1
- str1: .byte "-",0
-